<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <script>
        // 基本类型数组用 indexOf
        // 复杂类型数组用 findIndex
        let nums1 = [10, 20, 30, 40]

        console.log(nums1.indexOf(30)) // 2
        console.log(nums1.indexOf(10)) // 0
        console.log(nums1.indexOf(99)) // -1

        // 如果数组是复杂类型的元素，indexOf就不好用了
        let arr = [
            { id: 1, name: 'jack' },
            { id: 2, name: 'rose' },
            { id: 3, name: 'andy' },
        ]

        // 需求：找到id为2的元素的下标
        // 因为下面这句话是去找数组中有没有元素是2的
        // 而我们这个数组里面的元素全是对象，没有2，所以找不到得到-1
        console.log(arr.indexOf(2)) // -1

        // 复杂类型的查找就要用findIndex
        let idx = arr.findIndex(v => v.id === 2)
        console.log(idx) // 1
    </script>
</body>

</html>